package com.ruoyi.omp.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.system.api.domain.SysFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 房源对象 omp_bui_room
 *
 * @author cjie
 * @date 2021-07-20
 */
@Data
@ApiModel
public class BuiRoom extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** Id */
    @ApiModelProperty(value = "Id")
    private String id;

    /** 房源编号 */
    @Excel(name = "房源编号")
    @ApiModelProperty(value = "房源编号")
    private String roomNum;

    /** 园区Id */
    @ApiModelProperty(value = "园区Id")
    private String parkId;

    /** 园区编号 */
    @Excel(name = "园区编号")
    @ApiModelProperty(value = "园区编号")
    private String parkNum;

    @Excel(name = "园区名称")
    @ApiModelProperty(value = "园区名称")
    private String parkName;


    /** 楼栋编号 */
    @Excel(name = "楼栋编号")
    @ApiModelProperty(value = "楼栋编号")
    private String buildingNum;

    @Excel(name = "楼栋名称")
    @ApiModelProperty(value = "楼栋名称")
    private String buildingName;

    /** 楼层 */
    @Excel(name = "楼层")
    @ApiModelProperty(value = "楼层")
    private String floor;

    /** 门牌号 */
    @Excel(name = "门牌号")
    @ApiModelProperty(value = "门牌号")
    private String houseNumber;

    /** 楼栋Id */
    @ApiModelProperty(value = "楼栋Id")
    private String buildingId;

    /** 单元Id */
    @ApiModelProperty(value = "单元Id")
    private String unitId;

    /** 产权面积 */
    @Excel(name = "产权面积")
    @ApiModelProperty(value = "产权面积")
    private BigDecimal builtUpArea;

    /** 合同面积 */
    @Excel(name = "合同面积")
    @ApiModelProperty(value = "合同面积")
    private BigDecimal contractArea;

    /** 产权面积 */
    @Excel(name = "租赁价格")
    @ApiModelProperty(value = "租赁价格")
    private BigDecimal areaPrice;

    @Excel(name = "物管费")
    @ApiModelProperty(value = "物管费")
    private BigDecimal propertyFee;

    @Excel(name = "设施使用费")
    @ApiModelProperty(value = "设施使用费")
    private BigDecimal facilityFee;

    /** 房源类型 */
    @Excel(name = "房源类型")
    @ApiModelProperty(value = "房源类型")
    private String roomType;

    /** 使用状态 */
    @Excel(name = "使用状态")
    @ApiModelProperty(value = "使用状态")
    private String state;

    /** 租赁状态 */
    @Excel(name = "租赁状态|0未出租")
    @ApiModelProperty(value = "租赁状态")
    private String leaseState;

    /** 房间配置 */
    @Excel(name = "房间配置")
    @ApiModelProperty(value = "房间配置")
    private String capacity;

    /** 当前已住人数 */
    @Excel(name = "当前已住人数")
    @ApiModelProperty(value = "当前已住人数")
    private Integer alreadyLive;

    /** 删除标志(0正常 1删除) */
    @ApiModelProperty(value = "删除标志(0正常 1删除)")
    private String delFlag;


    /** 租户Id */
    @ApiModelProperty(value = "租户Id")
    private String tenantId;

    /** 租赁记录Id */
    @ApiModelProperty(value = "租赁记录Id")
    private String recordId;

    //以下属性为页面视图属性
    /** 附件份数 */
    @ApiModelProperty(value = "附件份数")
    private Integer fileAmount;

    /** 附件id集合 */
    @ApiModelProperty(value = "附件id集合")
    private List<Long> fileIdList;

    /** 附件集合 */
    @ApiModelProperty(value = "附件集合")
    private List<SysFile> fileList;

    /** 入驻企业 */
    @Excel(name = "入驻企业")
    @ApiModelProperty(value = "入驻企业")
    private String enterpriseName;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date beginTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    /** 房源面积下限 */
    @ApiModelProperty(value = "房源面积下限")
    private String lowerLimit;

    /** 房源面积上限 */
    @ApiModelProperty(value = "房源面积上限")
    private String upperLimit;

    /** 配套设施 */
    @ApiModelProperty(value = "配套设施")
    private List<BuiRoomFacility> facilityList;

    /** 房源类型集合 */
    @ApiModelProperty(value = "房源类型集合")
    private List<String> roomTypeList;

    /** 房源状态集合 */
    @ApiModelProperty(value = "房源状态集合")
    private List<String> stateList;


}
